let jwt = require('../../utils/jwt');
let mgdb = require('../../utils/mgdb')

module.exports =  (req,res,next)=>{

  //公共参数携带

  req.query._page = req.query._page ? req.query._page - 1 : require('../../config/global')._page
  req.query._limit = req.query._limit ? req.query._limit - 0 : require('../../config/global')._limit
  req.query.q = req.query.q ? req.query.q: require('../../config/global').q
  req.query._sort = req.query._sort ? req.query._sort : require('../../config/global')._sort

  req.body._page = req.body._page ? req.body._page - 1 : require('../../config/global')._page
  req.body._limit = req.body._limit ? req.body._limit - 0 : require('../../config/global')._limit
  req.body.q = req.body.q ? req.body.q: require('../../config/global').q
  req.body._sort = req.body._sort ? req.body._sort : require('../../config/global')._sort

  req.headers._page = req.headers._page ? req.headers._page - 1 : require('../../config/global')._page
  req.headers._limit = req.headers._limit ? req.headers._limit - 0 : require('../../config/global')._limit
  req.headers.q = req.headers.q ? req.headers.q: require('../../config/global').q
  req.headers._sort = req.headers._sort ? req.headers._sort : require('../../config/global')._sort

  req.mgdb=mgdb;


  //token统一校验
  if(/login|reg|logout/.test(req.url)){
    next()
  }else{
    let token = req.headers.token || req.body.token || req.query.token;
    jwt.verify(token).then(
      decode => {
        req.query.decode = decode
        next()
      }
    ).catch(
      message => res.send({err: 2, msg:'token过期或者失效' + message})
    )
  }

}